package com.unsiv.helicopterdemo;

/**
 * 
 * @author lgr
 * @time   下午3:12:25 2011-10-22
 * @email  china.lgr@foxmail.com
 * @qq     350188695
 * @phone  15588810852
 */
public class Command {
	public static int mThrottle; // 油门强度
	public static int mForwardOrBack; // :2前后指示,00:没有操作 01:操作向前 10:操作向后 11:保留；
	public static int mValueOfFB; // :6前后强度
	public static int mLeftOrRight; // :2左右指示,00:没有操作 01:操作向左 10:操作向右 11:保留
	public static int mValueOfLR; // :6左右强度
	public static int mLampOnOff; // :10为灯灭，1为灯亮
	public static int mChannel; // :2通道号 00:A通道 01:B通道 10:C通道 11:D通道
	public static int mRectification; // :1微调方向：占1BIT，0:左调，1:右调。
	public static int mValueOfRf; // :4当微调值为0000时，表示正中间
	public static int mRand; // :4这个数据是一个随机数，
	public static int mType; // :4控制类型，飞机01、车02、船、03、坦克04
								// 随机数和控制类型一起构成一个基数，前面字段的数据和给该数据进行8BIT异或操作后，
								// 填入到数据包，接收端进行数据还原

	public static String getCommend() {
		StringBuilder comm = new StringBuilder();
		String strTemp = Integer.toBinaryString(mThrottle);
		comm.append(String.format("00000000%1s", strTemp).substring(strTemp.length()));
		strTemp = Integer.toBinaryString(mForwardOrBack);
		comm.append(String.format("00%1s", strTemp).substring(strTemp.length()));
		strTemp = Integer.toBinaryString(mValueOfFB);
		comm.append(String.format("000000%1s", strTemp).substring(strTemp.length()));
		strTemp = Integer.toBinaryString(mLeftOrRight);
		comm.append(String.format("00%1s", strTemp).substring(strTemp.length()));
		strTemp = Integer.toBinaryString(mValueOfLR);
		comm.append(String.format("000000%1s", strTemp).substring(strTemp.length()));
		strTemp = Integer.toBinaryString(mLampOnOff);
		comm.append(String.format("0%1s", strTemp).substring(strTemp.length()));
		strTemp = Integer.toBinaryString(mChannel);
		comm.append(String.format("00%1s", strTemp).substring(strTemp.length()));
		strTemp = Integer.toBinaryString(mRectification);
		comm.append(String.format("0%1s", strTemp).substring(strTemp.length()));
		strTemp = Integer.toBinaryString(mValueOfRf);
		comm.append(String.format("0000%1s", strTemp).substring(strTemp.length()));
		strTemp = Integer.toBinaryString(mRand);
		comm.append(String.format("0000%1s", strTemp).substring(strTemp.length()));
		strTemp = Integer.toBinaryString(mType);
		comm.append(String.format("0000%1s", strTemp).substring(strTemp.length()));
		return comm.toString();
	}
	

	public static void getDemoData() {
		mThrottle = 255; // 油门强度
		mForwardOrBack = 00; // :2前后指示,00:没有操作 01:操作向前 10:操作向后 11:保留；
		mValueOfFB = 60; // :6前后强度
		mLeftOrRight = 01; // :2左右指示,00:没有操作 01:操作向左 10:操作向右 11:保留
		mValueOfLR = 55; // :6左右强度
		mLampOnOff = 0; // :10为灯灭，1为灯亮
		mChannel = 01; // :2通道号 00:A通道 01:B通道 10:C通道 11:D通道
		mRectification = 1; // :1微调方向：占1BIT，0:左调，1:右调。
		mValueOfRf = 0000; // :4当微调值为0000时，表示正中间
		mRand = 4; // :4这个数据是一个随机数，
		mType = 01; // :4控制类型，飞机01、车02、船、03、坦克04
	}
}
